package main

import "fmt"

func main() {
	var ch chan int
	ch = make(chan int)  // 这个管道没有无缓存
	// 这个goroutine一次存一个，再存会阻塞，直到主线程后面的for循环遍历的时候取走数据
	// 存完100个数后，这里的for循环结束，会关闭管道。主线程后面的for循环的遍历就能正常结束了
	go func () {
		for i := 0; i < 100; i++ {
			ch <- i
		}
		close(ch)
	}()
	for v := range ch {
		fmt.Println(v)
	}
}